package com.example.zxd;

import java.util.Scanner;

/**
 * 开普勒星球历法
 * 描述：
 * 开普勒星的公转周期略长于地球，因此，开普勒星人将一个开普勒年分为 426
 * 天。其中，前十二个月和地球完全一致，13
 * 月和 14
 * 月则分别为 30
 * 和 31
 * 天。
 * <p>
 * 1月 31天
 * 2月 28天（闰年29天）
 * 3月 31天
 * 4月 30天
 * 5月 31天
 * 6月 30天
 * 7月 31天
 * 8月 31天
 * 9月 30天
 * 10月 31天
 * 11月 30天
 * 12月 31天
 * 13月 30天
 * 14月 31天
 * 每过几个开普勒年，就会有一个闰年，闰年的 2
 * 月有 29
 * 天。具体来说，如果一个开普勒年：
 * <p>
 * 是整百年：要被 400
 * 整除才是闰年，否则不是闰年；
 * 是非整百年：只要被 4
 * 整除就是闰年，否则不是闰年。
 * 例如，1900
 * 年是平年，2000
 * 年是闰年，2020
 * 年是闰年，2023
 * 年是平年。
 * <p>
 * 现在，开普勒星人想知道，从开普勒星今年的第一天开始，第 n
 * 天是几月几日。
 * <p>
 * 输入：
 * 输入共一行，包含两个整数 Y
 * 和 n
 * ，分别表示今年的年份和需要计算的跨越天数，题目保证 1234≤Y≤9999
 * ，1≤n≤426
 * 。
 * <p>
 * 输出：
 * 输出共一行，包含两个整数，分别表示第 n
 * 天是几月几日。
 * <p>
 * 样例输入：
 * 2023 1
 * 样例输出：
 * 1 1
 * 样例输入：
 * 2024 426
 * 样例输出：
 * 14 30
 * 样例输入：
 * 2000 60
 * 样例输出：
 * 2 29
 * 注释：
 * 对于 20%
 * 的数据，题目保证 n≤59
 * 。
 * <p>
 * 对于 20%
 * 的数据，题目保证 Y=2023
 * 。
 * <p>
 * 对于 50%
 * 的数据，题目保证 Y
 * 为非闰年。
 * <p>
 * 对于 100%
 * 的数据，题目保证 1234≤Y≤9999
 * ，1≤n≤426
 * 。
 *
 * @author: scarborough
 * @datetime: 2025/3/20 - 11:52
 * @status: AC
 */
public class PROB1025 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int y = sc.nextInt();
        int n = sc.nextInt();

        boolean flag = (y % 100 == 0 && y % 400 == 0) || (y % 100 != 0 && y % 4 == 0);
        int index = 1;
        while (n > getMonthDay(index,flag)) {
            n -= getMonthDay(index++,flag);
        }
        System.out.println(index + " " + n);
    }

    public static int getMonthDay(int month, boolean flag) {
        if (month == 2) {
            if (flag) {
                return 29;
            } else {
                return 28;
            }
        } else if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 ||
                month == 10 || month == 12 || month == 14) {
            return 31;
        } else {
            return 30;
        }
    }
}
